package com.pmcc.utils;

import java.util.*;

public class MapUtil {
    public static HashMap<String, Integer> sortHashMap(Map<String, Integer> map) {

        // 首先拿到map的键值对集合
        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();

        // 将set集合转为List集合，为什么？为了使用工具类的排序方法
        List<Map.Entry<String, Integer>> list = new ArrayList<>(entrySet);
        // 使用collections集合工具类对list进行排序，排序规则使用匿名内部类来实现
        Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {

            @Override
            public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
                // 按要求根据User的age的倒序进行排
                return o2.getValue() - o1.getValue();
            }
        });
        // 创建一个新的有序的HashMap子类的集合
        HashMap<String, Integer> hashMap = new HashMap<>();
        // 将list中的数据存储在LinkedHashMap中
        int i = 1;
        for (Map.Entry<String, Integer> entry : list) {
            if (i > 100) {
                break;
            }
            hashMap.put(entry.getKey(), entry.getValue());
            i++;
        }
        // 返回结果
        return hashMap;
    }
}
